common.skill

COBOL এ টেবিলস এবং অ্যারে (Tables and Arrays in COBOL)

Computer Programming - কোবল (COBOL)
222
222

COBOL এ টেবিলস এবং অ্যারে (Tables and Arrays in COBOL)

COBOL এ টেবিলস বা অ্যারে ব্যবহার করা হয় একাধিক ডেটা উপাদান একত্রে সংরক্ষণ করার জন্য। এই টেবিলগুলো ডেটার একটি সিরিজ বা সেট তৈরি করে, যেখানে প্রতিটি উপাদান একটি নির্দিষ্ট ইনডেক্স (অথবা সাবস্ক্রিপ্ট) দ্বারা অ্যাক্সেস করা যায়। COBOL এ টেবিলস (অথবা অ্যারে) খুবই কার্যকরী, বিশেষ করে যখন অনেক ডেটা একসাথে ম্যানেজ বা প্রসেস করার প্রয়োজন হয়।


COBOL এ টেবিল বা অ্যারে সংজ্ঞায়িত করা

COBOL এ টেবিল বা অ্যারে সংজ্ঞায়িত করতে OCCURS ক্লজ ব্যবহার করা হয়। টেবিলের প্রতিটি উপাদান একটি ভেরিয়েবল হিসেবে ব্যবহৃত হয়, এবং এর সংখ্যা নির্ধারণ করা যায়।

সিনট্যাক্স:

01  table-name.
    05  element-name OCCURS n TIMES.

এখানে:

  • n TIMES এর মাধ্যমে টেবিলের সাইজ (তথ্য উপাদান সংখ্যা) নির্ধারণ করা হয়।

১. টেবিল বা অ্যারে সংজ্ঞায়ন

OCCURS ক্লজ ব্যবহার করে একটি টেবিল সংজ্ঞায়ন করা হয়, যেখানে প্রতিটি উপাদান একটি নির্দিষ্ট ডেটা টাইপের হবে। COBOL এ টেবিলের আকার এবং সাইজ কোডে নির্ধারণ করা যায়।

উদাহরণ:

DATA DIVISION.
WORKING-STORAGE SECTION.
01  STUDENT-TABLE.
    05  STUDENT-NAME   PIC X(20) OCCURS 5 TIMES.
    05  STUDENT-AGE    PIC 99 OCCURS 5 TIMES.

এখানে:

  • STUDENT-TABLE নামক টেবিলটি ৫টি উপাদান ধারণ করতে সক্ষম।
  • STUDENT-NAME এবং STUDENT-AGE দুটি অ্যারে যেখানে ৫টি স্টুডেন্টের নাম এবং বয়স সংরক্ষণ করা হবে।

২. টেবিলের উপাদান অ্যাক্সেস করা

COBOL এ টেবিলের উপাদানগুলো অ্যাক্সেস করতে SUBSCRIPT বা INDEX ব্যবহার করা হয়। SUBSCRIPT সাধারণত সংখ্যার মাধ্যমে টেবিলের উপাদান অ্যাক্সেস করতে ব্যবহৃত হয়। INDEX কৌশলটি কিছুটা উন্নত এবং এটি সাধারণত আরও কার্যকরী, বিশেষ করে ডাইনামিক অ্যাক্সেসের জন্য।

উদাহরণ: SUBSCRIPT ব্যবহার

MOVE 'John' TO STUDENT-NAME (1).
MOVE 20 TO STUDENT-AGE (1).
MOVE 'Sara' TO STUDENT-NAME (2).
MOVE 22 TO STUDENT-AGE (2).

DISPLAY 'Student 1: ' STUDENT-NAME (1) ' Age: ' STUDENT-AGE (1).
DISPLAY 'Student 2: ' STUDENT-NAME (2) ' Age: ' STUDENT-AGE (2).

এখানে, SUBSCRIPT ব্যবহার করে STUDENT-NAME এবং STUDENT-AGE অ্যারে থেকে প্রথম এবং দ্বিতীয় ছাত্রের নাম এবং বয়স পাওয়া যাবে। (1) এবং (2) এখানে ইন্ডেক্স হিসেবে ব্যবহৃত হচ্ছে।

উদাহরণ: INDEX ব্যবহার

01  INDEXED-STUDENT-TABLE.
    05  STUDENT-NAME   PIC X(20) OCCURS 5 TIMES INDEXED BY STUDENT-INDEX.
    05  STUDENT-AGE    PIC 99 OCCURS 5 TIMES INDEXED BY STUDENT-INDEX.

    SET STUDENT-INDEX TO 1.
    MOVE 'John' TO STUDENT-NAME (STUDENT-INDEX).
    MOVE 20 TO STUDENT-AGE (STUDENT-INDEX).

    SET STUDENT-INDEX TO 2.
    MOVE 'Sara' TO STUDENT-NAME (STUDENT-INDEX).
    MOVE 22 TO STUDENT-AGE (STUDENT-INDEX).

    DISPLAY 'Student 1: ' STUDENT-NAME (STUDENT-INDEX) ' Age: ' STUDENT-AGE (STUDENT-INDEX).

এখানে INDEXED BY এর মাধ্যমে STUDENT-INDEX নামক ইনডেক্স ভেরিয়েবল তৈরি করা হয়েছে, যা টেবিলের উপাদান অ্যাক্সেস করতে সহায়তা করছে।


৩. TALLYING ও SEARCHING টেবিল

COBOL এ টেবিলের মধ্যে তথ্য খুঁজে পেতে SEARCH স্টেটমেন্ট ব্যবহার করা হয়, এবং টেবিলের মানের উপর নির্ভর করে কাউন্টিং বা ট্যালি করতে TALLYING স্টেটমেন্ট ব্যবহার করা হয়।

SEARCH স্টেটমেন্ট:

SEARCH স্টেটমেন্ট একটি টেবিলের মধ্যে মান অনুসন্ধান করতে ব্যবহৃত হয়।

SEARCH STUDENT-NAME
    AT END
        DISPLAY 'Student not found'
    WHEN STUDENT-NAME (STUDENT-INDEX) = 'Sara'
        DISPLAY 'Student found: Sara'
END-SEARCH.

এখানে SEARCH স্টেটমেন্ট ব্যবহার করে STUDENT-NAME টেবিলের মধ্যে 'Sara' নামটি খুঁজে বের করা হয়েছে।

TALLYING স্টেটমেন্ট:

TALLYING স্টেটমেন্টটি ব্যবহার করে টেবিলের মানের উপর ভিত্তি করে কাউন্ট করা হয়।

MOVE 0 TO COUNT.
PERFORM VARYING STUDENT-INDEX FROM 1 BY 1 UNTIL STUDENT-INDEX > 5
    IF STUDENT-AGE (STUDENT-INDEX) > 21
        ADD 1 TO COUNT
    END-IF
END-PERFORM.

DISPLAY 'Number of students older than 21: ' COUNT.

এখানে, TALLYING স্টেটমেন্টের মাধ্যমে ২১ বছরের বেশি বয়সী ছাত্রদের সংখ্যা গণনা করা হচ্ছে।


সারসংক্ষেপ

COBOL এ টেবিলস বা অ্যারে ব্যবহৃত হয় একাধিক ডেটা উপাদান সংরক্ষণ এবং ব্যবস্থাপনা করতে। OCCURS ক্লজ ব্যবহার করে টেবিল সংজ্ঞায়িত করা হয়, এবং SUBSCRIPT অথবা INDEX ব্যবহার করে টেবিলের উপাদানগুলো অ্যাক্সেস করা যায়। COBOL এ SEARCH, TALLYING, এবং PERFORM স্টেটমেন্টগুলি ব্যবহার করে টেবিলের তথ্য অনুসন্ধান এবং প্রসেস করা যায়। টেবিল এবং অ্যারে ব্যবহারের মাধ্যমে COBOL প্রোগ্রামে অনেক ডেটা সহজে এবং কার্যকরীভাবে ম্যানেজ করা সম্ভব হয়।

common.content_added_by

টেবিল (এক ধরনের অ্যারে) এর ধারণা

181
181

টেবিল (এক ধরনের অ্যারে) এর ধারণা

টেবিল (যা COBOL প্রোগ্রামিং ভাষায় Array হিসেবেও পরিচিত) এমন একটি ডেটা স্ট্রাকচার, যা একাধিক ডেটা উপাদানকে একই ধরনের ডেটার মধ্যে সংরক্ষণ করতে ব্যবহৃত হয়। COBOL এ টেবিলগুলো সাধারণত একই ডেটা টাইপের একাধিক মান সংরক্ষণ করতে ব্যবহৃত হয়, এবং প্রতিটি মানকে এককভাবে অ্যাক্সেস করা যায়।

টেবিল সাধারণত Indexing বা Subscript ব্যবহার করে অ্যাক্সেস করা হয়, যেখানে প্রতিটি উপাদান একটি নির্দিষ্ট সূচক বা অবস্থান দ্বারা চিহ্নিত হয়। COBOL ভাষায় টেবিল গঠন এবং ব্যবহারের জন্য কিছু নির্দিষ্ট নিয়ম রয়েছে।


টেবিলের গঠন

COBOL এ টেবিল বা অ্যারে তৈরি করতে PICTURE বা OCCURS ক্লজ ব্যবহার করা হয়। OCCURS ক্লজের মাধ্যমে একটি ডেটা স্ট্রাকচার বা ভ্যারিয়েবলকে একাধিক উপাদান ধারণ করার জন্য নির্ধারণ করা হয়।

Sintax:

01  table-name.
    05  element-name OCCURS n TIMES.

এখানে:

  • table-name: টেবিলের নাম।
  • element-name: টেবিলের উপাদান বা ভ্যারিয়েবল।
  • n TIMES: কতগুলি উপাদান থাকবে তা নির্ধারণ করা হয়।

টেবিলের উদাহরণ

ধরা যাক, আমাদের একটি গ্রেড টেবিল তৈরি করতে হবে যেখানে ৫ জন শিক্ষার্থীর গ্রেড সংরক্ষণ করা হবে। প্রতিটি গ্রেড একটি সন্নিবেশ ভ্যারিয়েবল হিসেবে সংরক্ষিত থাকবে এবং আমরা এই গ্রেডগুলো অ্যাক্সেস করব একটি নির্দিষ্ট সূচক দ্বারা।

উদাহরণ:

DATA DIVISION.
WORKING-STORAGE SECTION.
01  STUDENT-GRADES.
    05  GRADE OCCURS 5 TIMES PIC 99.

এখানে:

  • GRADE টেবিলের নাম, যা ৫টি উপাদান ধারণ করতে পারে।
  • PIC 99 দ্বারা প্রতিটি উপাদান একটি ২ ডিজিটের সংখ্যা হবে, যেমন গ্রেড ১০০ এর মধ্যে থাকবে।

টেবিলের অ্যাক্সেস

COBOL এ টেবিলের প্রতিটি উপাদান Subscript বা Index দ্বারা অ্যাক্সেস করা যায়। Subscript সাধারণত 1 থেকে শুরু হয় এবং Index 0 থেকে শুরু হয়। টেবিলের প্রথম উপাদান অ্যাক্সেস করতে আমরা Subscript বা Index হিসেবে 1 ব্যবহার করি।

উদাহরণ:

DISPLAY 'Grade of student 1: ' GRADE(1).
DISPLAY 'Grade of student 2: ' GRADE(2).

এখানে, GRADE(1) প্রথম ছাত্রের গ্রেড, এবং GRADE(2) দ্বিতীয় ছাত্রের গ্রেড প্রদর্শন করবে।


ইনডেক্স এবং সাবস্ক্রিপ্টের মধ্যে পার্থক্য

  • Subscript: এটি ঐশ্বরিকভাবে একটি 1-ভিত্তিক সূচক। অর্থাৎ, টেবিলের প্রথম উপাদান 1 দ্বারা অ্যাক্সেস করা হয়।
  • Index: এটি একটি 0-ভিত্তিক সূচক। অর্থাৎ, প্রথম উপাদান 0 দ্বারা অ্যাক্সেস করা হয়।

উদাহরণ (Index ব্যবহারে):

01  STUDENT-GRADES.
    05  GRADE PIC 99 OCCURS 5 TIMES INDEXED BY IDX.

এখানে, IDX একটি ইনডেক্স ভ্যারিয়েবল। আপনি IDX ইনডেক্স ব্যবহার করে গ্রেড অ্যাক্সেস করতে পারেন।


টেবিলের উপাদান আপডেট এবং সারণী পরিবর্তন

COBOL এ একটি টেবিলের উপাদান আপডেট করা, নতুন উপাদান যোগ করা বা একটি উপাদান মুছে ফেলা খুবই সহজ। আপনি SET বা PERFORM স্টেটমেন্টের মাধ্যমে টেবিলের মান পরিবর্তন করতে পারেন।

উদাহরণ (একটি উপাদান আপডেট):

SET IDX TO 2.
MOVE 95 TO GRADE(IDX).

এখানে, GRADE(IDX) নির্দেশ করে যে, আমরা IDX এর মান অনুযায়ী, GRADE টেবিলের দ্বিতীয় উপাদানকে আপডেট করেছি।


টেবিলের পরিসীমা

COBOL এ টেবিলের আকার বা পরিসীমা OCCURS ক্লজের মাধ্যমে নির্ধারণ করা হয়। আপনি চাইলে টেবিলের আকার পরিবর্তন করতে পারবেন, যেমন উপাদানের সংখ্যা বাড়ানো বা কমানো।

উদাহরণ (পরিসীমা পরিবর্তন):

01  STUDENT-GRADES.
    05  GRADE OCCURS 10 TIMES PIC 99.

এখানে, GRADE টেবিলটি ১০টি উপাদান ধারণ করবে।


সারসংক্ষেপ

COBOL এ টেবিল (অথবা অ্যারে) একটি ডেটা স্ট্রাকচার যা একাধিক উপাদান একই ডেটা টাইপের ধারণ করে। টেবিলের ব্যবহার প্রধানত ডেটার সন্নিবেশ, পুনঃব্যবহার এবং প্রক্রিয়াকরণের জন্য হয়ে থাকে। COBOL এ টেবিল তৈরি করতে OCCURS ক্লজ ব্যবহার করা হয়, এবং টেবিলের উপাদানগুলি Subscript বা Index দ্বারা অ্যাক্সেস করা হয়। টেবিলগুলি বিভিন্ন ধরনের ডেটা সন্নিবেশ, আপডেট এবং ম্যানিপুলেশন করতে সহায়ক এবং প্রোগ্রামিংয়ের একটি গুরুত্বপূর্ণ অংশ।

common.content_added_by

OCCURS ক্লজ এবং তার ব্যবহার

219
219

COBOL-এ OCCURS ক্লজ এবং তার ব্যবহার

COBOL-এ OCCURS ক্লজ একটি শক্তিশালী ফিচার যা একাধিক উপাদান বা ডেটা আইটেমের একটি অ্যারে (array) তৈরি করতে ব্যবহৃত হয়। এটি ডেটা ফাইল বা মেমোরিতে একাধিক বার একটি নির্দিষ্ট ধরনের ডেটা সংরক্ষণ করার জন্য ব্যবহৃত হয়। OCCURS ক্লজ ব্যবহার করলে, একই ধরনের একাধিক ডেটা আইটেম ঘোষণা করা হয় এবং এগুলি একত্রে ম্যানেজ করা যায়।


OCCURS ক্লজের সাধারণ গঠন:

01  variable-name.
    05  item-name     PIC X(10) OCCURS 5 TIMES.
  • variable-name: এটি হল প্রধান ডেটা স্ট্রাকচার বা রেকর্ডের নাম।
  • item-name: এটি হলো ডেটা আইটেমের নাম, যা একাধিকবার পুনরাবৃত্তি হবে।
  • OCCURS 5 TIMES: এর মানে হল যে item-name পাঁচটি বার থাকবে। অর্থাৎ, ৫টি উপাদান ধারণ করতে সক্ষম।

OCCURS ক্লজের ব্যবহার

COBOL-এ OCCURS ক্লজ সাধারণত ডেটা মেমরি বা ফাইলের মধ্যে একাধিক উপাদান ধারণ করতে ব্যবহৃত হয়, বিশেষ করে যখন আপনার কাছে সমান ধরনের একাধিক তথ্য থাকে এবং সেগুলি একত্রে ম্যানেজ করা দরকার।

উদাহরণ ১: একটি অ্যারের মধ্যে বিভিন্ন নাম সংরক্ষণ

01  NAMES.
    05  NAME     PIC X(20) OCCURS 3 TIMES.
    
PROCEDURE DIVISION.
    MOVE 'John' TO NAME(1)
    MOVE 'Alice' TO NAME(2)
    MOVE 'Bob' TO NAME(3)
    
    DISPLAY NAME(1)
    DISPLAY NAME(2)
    DISPLAY NAME(3)
    
    STOP RUN.

ব্যাখ্যা:

  • এখানে NAMES একটি রেকর্ড, যার মধ্যে NAME ফিল্ডটি 3 TIMES ৩টি ভিন্ন নাম ধারণ করবে।
  • প্রথমে তিনটি ভিন্ন নাম NAME(1), NAME(2), এবং NAME(3) এ সংরক্ষণ করা হয়।
  • পরে, তিনটি নাম DISPLAY কমান্ডের মাধ্যমে স্ক্রীনে দেখানো হয়।

উদাহরণ ২: ব্যবহারকারীর স্কোর সংরক্ষণ

01  SCORES.
    05  SCORE     PIC 99 OCCURS 5 TIMES.

PROCEDURE DIVISION.
    MOVE 85 TO SCORE(1)
    MOVE 90 TO SCORE(2)
    MOVE 95 TO SCORE(3)
    MOVE 88 TO SCORE(4)
    MOVE 92 TO SCORE(5)
    
    DISPLAY 'Scores of the students:'
    DISPLAY SCORE(1)
    DISPLAY SCORE(2)
    DISPLAY SCORE(3)
    DISPLAY SCORE(4)
    DISPLAY SCORE(5)
    
    STOP RUN.

ব্যাখ্যা:

  • এখানে SCORE ফিল্ডটি 5 TIMES আছে, যার মানে ৫টি স্কোর একে একে SCORE(1), SCORE(2), SCORE(3), SCORE(4), এবং SCORE(5) নামের ভেরিয়েবলে সংরক্ষণ করা হয়েছে।
  • তারপর, DISPLAY কমান্ডের মাধ্যমে এই স্কোরগুলো দেখানো হয়েছে।

OCCURS ক্লজের কিছু গুরুত্বপূর্ণ বৈশিষ্ট্য:

  1. ব্যবহারিক ডেটা স্ট্রাকচার:
    • OCCURS ক্লজ ব্যবহার করে একই ধরনের একাধিক উপাদানকে একটি ডেটা স্ট্রাকচারে (array) সংরক্ষণ করা যায়, যেমন সংখ্যার তালিকা, নামের তালিকা, অথবা অন্যান্য ডেটার অ্যারে।
  2. ডায়নামিক সাইজ:
    • COBOL-এ OCCURS ক্লজের সাথে আপনি একটি সাইজও নির্দিষ্ট করতে পারেন যা চলতি প্রোগ্রামিংয়ের সময় পরিবর্তনশীল হতে পারে, যেমন:

      01  STUDENT-NAMES.
          05  NAME PIC X(20) OCCURS 100 TIMES.
  3. ব্যবহার করা ইন্ডেক্স:
    • OCCURS ক্লজের মাধ্যমে ডেটা আইটেমগুলো ইন্ডেক্স ব্যবহার করে অ্যাক্সেস করা যায়। উদাহরণস্বরূপ:

      MOVE 'John' TO NAME(1)
      MOVE 'Alice' TO NAME(2)
  4. অ্যারে লিমিটেশন:
    • COBOL-এ OCCURS ক্লজের সাথে আইটেমের সংখ্যা সীমিত করা যেতে পারে। তবে, আধুনিক COBOL ভার্সনগুলিতে এটি আরও ডায়নামিকভাবে পরিবর্তনযোগ্য হতে পারে।
  5. OCCURS এর সাথে INDEXED এবং SUBSCRIPT:
    • INDEXED এবং SUBSCRIPT এই দুটি ধারণা OCCURS ক্লজের সঙ্গে ব্যবহার করা যেতে পারে। SUBSCRIPT বা INDEX ব্যবহার করে অ্যারে বা তালিকা থেকে নির্দিষ্ট উপাদান নির্বাচন করা হয়।

OCCURS ক্লজের সঙ্গে INDEX ব্যবহার:

01  STUDENT-SCORES.
    05  SCORE   PIC 99 OCCURS 5 TIMES INDEXED BY IDX.
    
PROCEDURE DIVISION.
    SET IDX TO 1
    PERFORM UNTIL IDX > 5
        MOVE IDX TO SCORE(IDX)
        DISPLAY SCORE(IDX)
        ADD 1 TO IDX
    END-PERFORM.
    STOP RUN.

ব্যাখ্যা:

  • এখানে, SCORE অ্যারের জন্য INDEXED BY IDX ব্যবহার করা হয়েছে, যাতে IDX ইন্ডেক্সটি ব্যবহার করে অ্যারের উপাদানগুলিকে অ্যাক্সেস করা যায়।

সারসংক্ষেপ

COBOL-এ OCCURS ক্লজ একটি শক্তিশালী টুল যা একাধিক উপাদান সংরক্ষণ করার জন্য ব্যবহৃত হয়। এটি ডেটা ম্যানিপুলেশনকে সহজ এবং কার্যকর করে, বিশেষ করে যখন একাধিক সমান ধরনের ডেটা থাকতে হয়। OCCURS ক্লজের সাথে INDEX বা SUBSCRIPT ব্যবহার করে আরও উন্নতভাবে অ্যারে বা ডেটা স্ট্রাকচার ম্যানেজ করা সম্ভব।

common.content_added_by

Multidimensional Tables এর ব্যবহার

203
203

Multidimensional Tables এর ব্যবহার

Multidimensional Tables (বা Arrays) হল এমন ডেটা স্ট্রাকচার যা একাধিক ডাইমেনশন বা মাত্রায় ডেটা ধারণ করতে সক্ষম। COBOL-এ, multidimensional tables বা অ্যারেগুলি একটি সুনির্দিষ্ট আকারের টেবিল হিসাবে ডেটা সংরক্ষণ করতে ব্যবহৃত হয়, যেখানে প্রতিটি উপাদান একাধিক সূচক দ্বারা চিহ্নিত হয়। এটি বিভিন্ন ক্ষেত্রের জন্য ডেটা সংগ্রহ, প্রক্রিয়াকরণ এবং বিশ্লেষণ সহজ করে তোলে।

COBOL-এ মাল্টিডাইমেনশনাল টেবিল সাধারণত ডেটা ম্যানিপুলেশনের জন্য ব্যবহৃত হয়, যেমন ম্যাট্রিক্স, ডেটা বিশ্লেষণ, স্টোরেজ মডেল, ইত্যাদি ক্ষেত্রে। নিচে multidimensional tables এর ব্যবহার এবং কিভাবে COBOL-এ এগুলি ব্যবহার করা হয় তার বিস্তারিত আলোচনা করা হল।


১. Multidimensional Tables বা Arrays ডিফাইন করা

COBOL-এ একটি মাল্টিডাইমেনশনাল টেবিল ডিফাইন করতে, আপনাকে OCCURS ক্লজ ব্যবহার করতে হবে, যা টেবিলের সাইজ এবং ডাইমেনশন নির্ধারণ করে। COBOL সাধারণত ১ বা ২ মাত্রার অ্যারে সাপোর্ট করে, তবে আপনি আরও বেশি মাত্রার অ্যারেও কাজ করতে পারেন।

১.১ এক মাত্রার অ্যারে

01  EMPLOYEE-NAMES.
    05  EMP-NAME     OCCURS 10 TIMES PIC X(20).

এখানে, EMPLOYEE-NAMES একটি একমাত্রার অ্যারে, যার মধ্যে ১০টি নাম (20 অক্ষর প্রতিটি) থাকতে পারে।

১.২ দ্বিমাত্রিক টেবিল (2D Array)

01  MATRIX.
    05  ROW OCCURS 3 TIMES.
        10  COLUMN OCCURS 4 TIMES PIC 9(3).

এখানে, MATRIX একটি দ্বিমাত্রিক টেবিল যা ৩টি সারি এবং প্রতি সারিতে ৪টি কলাম ধারণ করতে সক্ষম।

১.৩ তিন মাত্রার অ্যারে

01  GRID.
    05  LAYER OCCURS 2 TIMES.
        10  ROW OCCURS 3 TIMES.
            15  COLUMN OCCURS 4 TIMES PIC 9(3).

এখানে, GRID একটি তিন মাত্রার অ্যারে যা ২টি স্তর (Layer), প্রতিটি স্তরে ৩টি সারি (Row) এবং প্রতিটি সারিতে ৪টি কলাম (Column) ধারণ করে।


২. Multidimensional Tables এ ডেটা অ্যাক্সেস

COBOL-এ multidimensional tables এ ডেটা অ্যাক্সেস করার জন্য আপনি INDEX বা SUBSCRIPT ব্যবহার করতে পারেন।

২.১ SUBSCRIPT ব্যবহার করে অ্যাক্সেস

SUBSCRIPT ব্যবহার করলে আপনি একটি নির্দিষ্ট অ্যারে উপাদান বা সেলের মান অ্যাক্সেস করতে পারেন।

SET ROW-SUBSCRIPT TO 2
SET COL-SUBSCRIPT TO 3
DISPLAY MATRIX (ROW-SUBSCRIPT, COL-SUBSCRIPT)

এখানে, ROW-SUBSCRIPT এবং COL-SUBSCRIPT অ্যারে উপাদান (সেলের) অবস্থান নির্ধারণ করতে সাহায্য করবে এবং আপনি সেই সেলের মান প্রদর্শন করতে পারবেন।

২.২ INDEX ব্যবহার করে অ্যাক্সেস

INDEX ব্যবহার করা হয় যখন আপনি টেবিলের নির্দিষ্ট স্থানে সরাসরি অ্যাক্সেস করতে চান, এটি সাধারণত বড় অ্যারে গুলির জন্য দ্রুততর।

SET ROW-INDEX TO 2
SET COL-INDEX TO 3
DISPLAY MATRIX (ROW-INDEX, COL-INDEX)

এখানে, ROW-INDEX এবং COL-INDEX দ্বারা টেবিলের নির্দিষ্ট উপাদান অ্যাক্সেস করা হবে।


৩. Multidimensional Tables এর ব্যবহার

মাল্টিডাইমেনশনাল টেবিলগুলো বিভিন্ন পরিস্থিতিতে ব্যবহৃত হতে পারে। কিছু সাধারণ উদাহরণ নিচে দেওয়া হলো:

৩.১ ম্যাট্রিক্স প্রক্রিয়াকরণ

ম্যাট্রিক্সের উপর গণনা বা বিশ্লেষণ করতে মাল্টিডাইমেনশনাল অ্যারে ব্যবহার করা যেতে পারে, যেমন মেট্রিক্স মাল্টিপ্লিকেশন বা অন্যান্য ম্যাথমেটিক্যাল অপারেশন।

PERFORM VARYING i FROM 1 BY 1 UNTIL i > 3
    PERFORM VARYING j FROM 1 BY 1 UNTIL j > 4
        ADD MATRIX(i,j) TO SUM
    END-PERFORM
END-PERFORM
DISPLAY "Total Sum: " SUM

এখানে, MATRIX(i, j) এর মধ্যে সারি এবং কলামের মান যোগ করা হচ্ছে।

৩.২ ডেটা বিশ্লেষণ

বিভিন্ন ডেটার উপর বিশ্লেষণ করার জন্য, মাল্টিডাইমেনশনাল টেবিল ব্যবহার করা যায়, যেমন শিক্ষার্থীদের ফলাফল, বিক্রয় ডেটা, স্টক প্রাইস ইত্যাদি।

01  STUDENT-SCORES.
    05  SCORES OCCURS 5 TIMES.
        10  SUBJECTS OCCURS 3 TIMES PIC 99.

PERFORM VARYING i FROM 1 BY 1 UNTIL i > 5
    PERFORM VARYING j FROM 1 BY 1 UNTIL j > 3
        ADD SCORES (i, j) TO TOTAL-SCORE
    END-PERFORM
END-PERFORM
DISPLAY "Total Score: " TOTAL-SCORE

এখানে, STUDENT-SCORES একটি ৫x৩ টেবিল যা ৫টি শিক্ষার্থীর জন্য ৩টি বিষয় অনুযায়ী স্কোর ধারণ করে।

৩.৩ প্রোডাক্ট ইনভেন্টরি ম্যানেজমেন্ট

মাল্টিডাইমেনশনাল টেবিলগুলি ইনভেন্টরি ম্যানেজমেন্টে ব্যবহার করা যেতে পারে, যেখানে বিভিন্ন পণ্য, তাদের স্টক সংখ্যা এবং মূল্য থাকে।

01  INVENTORY.
    05  PRODUCT OCCURS 3 TIMES.
        10  STOCK OCCURS 2 TIMES PIC 9(3).
        10  PRICE OCCURS 2 TIMES PIC 9(5)V99.

PERFORM VARYING i FROM 1 BY 1 UNTIL i > 3
    PERFORM VARYING j FROM 1 BY 1 UNTIL j > 2
        DISPLAY "Product " i " , Stock " j ": " STOCK(i,j) " , Price: " PRICE(i,j)
    END-PERFORM
END-PERFORM

এখানে, PRODUCT একটি মাল্টিডাইমেনশনাল টেবিল যা পণ্যের স্টক এবং মূল্য ধারণ করে।


সারসংক্ষেপ

COBOL-এ Multidimensional Tables বা অ্যারে ব্যবহার করার মাধ্যমে আপনি একাধিক মাত্রায় ডেটা সংরক্ষণ এবং প্রক্রিয়া করতে পারেন। এটি MATRIX, ডেটা বিশ্লেষণ, ইনভেন্টরি ম্যানেজমেন্ট সহ বিভিন্ন কাজে ব্যবহৃত হতে পারে। মাল্টিডাইমেনশনাল টেবিলগুলি আপনার প্রোগ্রামকে আরও দক্ষ এবং পরিষ্কার করে তোলে, এবং SUBSCRIPT বা INDEX ব্যবহার করে আপনি সহজেই বিভিন্ন ডেটা উপাদানে অ্যাক্সেস করতে পারবেন।

common.content_added_by

টেবিল প্রক্রিয়াকরণ এবং সাবস্ক্রিপশন

199
199

COBOL এ টেবিল প্রক্রিয়াকরণ এবং সাবস্ক্রিপশন

COBOL ভাষায় টেবিল প্রক্রিয়াকরণ এবং সাবস্ক্রিপশন ব্যবস্থাপনা একটি গুরুত্বপূর্ণ ভূমিকা পালন করে, বিশেষত যখন আমরা অনেকগুলো ডেটা রেকর্ড পরিচালনা করি এবং তাদের মধ্যে সম্পর্ক তৈরি করতে চাই। টেবিল প্রক্রিয়াকরণ সাধারণত ARRAY বা TABLE হিসেবে পরিচিত, যেখানে একাধিক মান সংরক্ষণ করা হয় এবং তাদের ওপর বিভিন্ন অপারেশন করা হয়।

সাবস্ক্রিপশন (Subscription) শব্দটি সাধারণত ডেটা প্রক্রিয়াকরণের সময় ব্যবহারকারীর বিভিন্ন পছন্দের বা অ্যাকাউন্ট সম্পর্কিত তথ্য পরিচালনা করতে ব্যবহৃত হয়। COBOL-এ টেবিল প্রক্রিয়াকরণের সাথে সাবস্ক্রিপশন ব্যবস্থাপনা করতে পারলে, এটি বিভিন্ন পরিষেবা বা ডেটা সিস্টেমে আরও কার্যকরীভাবে কাজ করতে সাহায্য করে।


১. COBOL এ টেবিল প্রক্রিয়াকরণ (Table Processing)

COBOL-এ টেবিল প্রক্রিয়াকরণ বা ARRAY প্রক্রিয়াকরণ অনেকটি ডেটা একত্রিতভাবে সংরক্ষণ এবং তাদের ওপর অপারেশন করতে ব্যবহৃত হয়। COBOL-এ টেবিল ডিফাইন করার জন্য TABLE বা OCCURS ক্লজ ব্যবহার করা হয়।

টেবিল ডেফিনিশন এবং প্রক্রিয়াকরণের উদাহরণ

       IDENTIFICATION DIVISION.
       PROGRAM-ID. TableProcessingExample.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  EMPLOYEE-TABLE.
           05  EMPLOYEE-ENTRY OCCURS 5 TIMES.
               10  EMPLOYEE-ID    PIC 9(4).
               10  EMPLOYEE-NAME  PIC X(30).
               10  EMPLOYEE-SALARY PIC 9(5)V99.
       
       PROCEDURE DIVISION.
           MOVE 1001 TO EMPLOYEE-ID (1)
           MOVE 'John Doe' TO EMPLOYEE-NAME (1)
           MOVE 50000.00 TO EMPLOYEE-SALARY (1)
           
           MOVE 1002 TO EMPLOYEE-ID (2)
           MOVE 'Jane Smith' TO EMPLOYEE-NAME (2)
           MOVE 55000.00 TO EMPLOYEE-SALARY (2)

           MOVE 1003 TO EMPLOYEE-ID (3)
           MOVE 'James Bond' TO EMPLOYEE-NAME (3)
           MOVE 60000.00 TO EMPLOYEE-SALARY (3)

           PERFORM DISPLAY-EMPLOYEES

           STOP RUN.

       DISPLAY-EMPLOYEES.
           PERFORM VARYING I FROM 1 BY 1 UNTIL I > 3
               DISPLAY 'Employee ID: ' EMPLOYEE-ID (I)
               DISPLAY 'Employee Name: ' EMPLOYEE-NAME (I)
               DISPLAY 'Employee Salary: ' EMPLOYEE-SALARY (I)
           END-PERFORM.

ব্যাখ্যা:

  • এখানে EMPLOYEE-TABLE নামে একটি টেবিল ডিফাইন করা হয়েছে, যা ৫টি EMPLOYEE-ENTRY ধারণ করে।
  • প্রতিটি EMPLOYEE-ENTRY-তে EMPLOYEE-ID, EMPLOYEE-NAME, এবং EMPLOYEE-SALARY রয়েছে।
  • PERFORM VARYING লুপের মাধ্যমে টেবিলের প্রতিটি এন্ট্রি প্রদর্শন করা হচ্ছে।

২. COBOL-এ সাবস্ক্রিপশন (Subscription)

COBOL-এ সাবস্ক্রিপশন ব্যবস্থাপনা করতে হলে, সাধারণত কোনো ব্যবহারকারীর তথ্য বা সাবস্ক্রিপশন সম্পর্কিত ডেটা পরিচালনা করা হয়। উদাহরণস্বরূপ, একাধিক গ্রাহক বা ব্যবহারকারীর জন্য সেবা, তাদের সাবস্ক্রিপশন প্যাকেজ, পরিমাণ, পেমেন্ট স্টেটাস ইত্যাদি ব্যবস্থাপনা করা যেতে পারে। এটা ডেটার উপর বিভিন্ন শর্ত প্রয়োগ করতে সাহায্য করে, যেমন অ্যাকাউন্ট ক্রিয়েশন, বিলিং, বা সাবস্ক্রিপশন রিনিউয়াল।

সাবস্ক্রিপশন প্রক্রিয়াকরণের উদাহরণ

       IDENTIFICATION DIVISION.
       PROGRAM-ID. SubscriptionManagementExample.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  CUSTOMER-TABLE.
           05  CUSTOMER-ENTRY OCCURS 3 TIMES.
               10  CUSTOMER-ID       PIC 9(4).
               10  CUSTOMER-NAME     PIC X(30).
               10  SUBSCRIPTION-TYPE  PIC X(10).
               10  SUBSCRIPTION-STATUS PIC X(10).
       
       PROCEDURE DIVISION.
           MOVE 1001 TO CUSTOMER-ID (1)
           MOVE 'Alice Brown' TO CUSTOMER-NAME (1)
           MOVE 'Premium' TO SUBSCRIPTION-TYPE (1)
           MOVE 'Active' TO SUBSCRIPTION-STATUS (1)

           MOVE 1002 TO CUSTOMER-ID (2)
           MOVE 'Bob Green' TO CUSTOMER-NAME (2)
           MOVE 'Basic' TO SUBSCRIPTION-TYPE (2)
           MOVE 'Expired' TO SUBSCRIPTION-STATUS (2)

           MOVE 1003 TO CUSTOMER-ID (3)
           MOVE 'Charlie White' TO CUSTOMER-NAME (3)
           MOVE 'Premium' TO SUBSCRIPTION-TYPE (3)
           MOVE 'Active' TO SUBSCRIPTION-STATUS (3)

           PERFORM DISPLAY-CUSTOMERS
           STOP RUN.

       DISPLAY-CUSTOMERS.
           PERFORM VARYING I FROM 1 BY 1 UNTIL I > 3
               DISPLAY 'Customer ID: ' CUSTOMER-ID (I)
               DISPLAY 'Customer Name: ' CUSTOMER-NAME (I)
               DISPLAY 'Subscription Type: ' SUBSCRIPTION-TYPE (I)
               DISPLAY 'Subscription Status: ' SUBSCRIPTION-STATUS (I)
           END-PERFORM.

ব্যাখ্যা:

  • CUSTOMER-TABLE একটি টেবিল, যা CUSTOMER-ENTRY ধারণ করে।
  • প্রতিটি CUSTOMER-ENTRY-তে CUSTOMER-ID, CUSTOMER-NAME, SUBSCRIPTION-TYPE, এবং SUBSCRIPTION-STATUS রয়েছে।
  • PERFORM VARYING লুপ ব্যবহার করে টেবিলের ডেটা প্রদর্শন করা হচ্ছে।

সারসংক্ষেপ

COBOL-এ টেবিল প্রক্রিয়াকরণ এবং সাবস্ক্রিপশন ব্যবস্থাপনা ডেটা পরিচালনা করতে খুবই কার্যকরী। OCCURS ক্লজের মাধ্যমে একাধিক ডেটা আইটেম সন্নিবেশ করা সম্ভব এবং তাদের ওপর বিভিন্ন অপারেশন (যেমন যোগফল, গুণফল, বা তথ্য প্রদর্শন) করা যেতে পারে। SUBSCRIPTION ব্যবস্থাপনা ক্ষেত্রেও একইভাবে টেবিল ব্যবহার করে বিভিন্ন ডেটা এবং শর্তাবলী পরিচালনা করা যায়। COBOL-এ টেবিল প্রক্রিয়াকরণ ডেটাবেস ম্যানেজমেন্ট এবং ব্যবসায়িক অ্যাপ্লিকেশনে ব্যবহারিকভাবে খুবই উপকারী।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion